home *** CD-ROM | disk | FTP | other *** search
/ Collection of Internet / Collection of Internet.iso / infosrvr / doc / www_talk.arc / 000057_timbl _Mon Mar 2 12:36:33 1992.msg < prev    next >
Internet Message Format  |  1992-11-30  |  9KB

  1. Return-Path: <timbl>
  2. Received: by  nxoc01.cern.ch  (NeXT-1.0 (From Sendmail 5.52)/NeXT-2.0)
  3.     id AA14036; Mon, 2 Mar 92 12:36:33 GMT+0100
  4. Date: Mon, 2 Mar 92 12:36:33 GMT+0100
  5. From: timbl (Tim Berners-Lee)
  6. Message-Id: <9203021136.AA14036@ nxoc01.cern.ch >
  7. Received: by NeXT Mailer (1.62)
  8. To: bcn@isi.edu (Clifford Neuman)
  9. Subject: Re: Draft: Universal Document Identifiers
  10. Cc: cni-arch@uccvma.bitnet, www-talk@nxoc01.cern.ch, wais-talk@think.com,
  11.         iafa@cc.mcgill.ca
  12.  
  13. Cliff,
  14.  
  15. Thanks for your input, with explanations of addressing in Prospero.
  16.  
  17. Prospero should certainly go into the document. Indeed, it seems to  
  18. fit in very well.   The small differences raise some interesting  
  19. questions -- reactions off the top of my head follow, in the sequence  
  20. of you messsage.
  21.  
  22.     Tim
  23.   _______________________________________________
  24.  
  25. > Date: Thu, 27 Feb 92 10:52:44 PST
  26. > From: bcn@isi.edu (Clifford Neuman)
  27.  
  28. > I have glanced through your document on universal directory
  29. > identifiers, and you seem to have left out Prospero.
  30.  
  31. Omission was from ignorance of the details you provide here and will  
  32. certainly be corrected. Prospero is very relevant.
  33.  
  34. > In particular, a Prospero link consists of two
  35. > parts, a host name, and a name of the object on that host.  The
  36. > latter part is usually a path name, but in reality, it can be any 
  37.  
  38. > string, including simply a unique ID.  Thus, a Prospero link might 
  39.  
  40. > look like
  41. >
  42. > TGO.ISI.EDU /a/b/c  or   GUM.ISI.EDU 27
  43.  
  44. The UDI syntax //TGO.ISI.EDU/a/b/c or //GUM.ISI.EDU/27 matches that  
  45. very well.  I suggest the prefix "prospero:" for prospero addresses.
  46.  
  47. > A Prospero link has a few other fields as well, but perhaps less
  48. > important.  There is a type field for the hostname.  It indicates
  49. > whether the hostname is an Internet name or address, or perhaps  
  50. some
  51. > other kind of name or address.  Only one type is presently  
  52. supported
  53. > (INTERNET-D) though, and that type includes Internet host names or
  54. addresses, with or without an optional Internet UDP port.
  55. >
  56. >  examples: TGO.ISI.EDU, TGO.ISI.EDU(191), 128.9.224.123, or  
  57. 128.9.224.123(191)
  58.  
  59. The UDI scheme foresees these possibilities. These would map onto
  60. //TGO.ISI.EDU/, //TGO.ISI.EDU:191/, //128.9.224.123/ and  
  61. /128.9.224.123:191/ respectively. The whole UDI of the file above  
  62. would be (if quoted out of the "prospero:" context),
  63.  
  64.     prospero://TGO.ISI.EDU:191/a/b/c
  65.  
  66.  
  67. We, also, wondered about how to extend the system when other  
  68. underlying protcols are used with the same higher-level protocol.  
  69. Suppose for example later one adds dial-up prospero. Should one write
  70.  
  71.     prospero://dialup:+12025672654:200/a/b/c
  72.  
  73. or     prospero-dialup:/+12025672654:200/a/b/c ?
  74.  
  75. My feeling is that the number of underlying network layers which have  
  76. complete world-wide coverage will remain low. Furthermore, one can  
  77. even imagine gateways there, so that those without X25 acces, say,  
  78. can go throuh some transport level gateway from TCP/IP if the need  
  79. arises. This suggests putting other low-level addresses into the  
  80. "host/port" field, encoded in some fashion. One would hope that there  
  81. will be less forms of transport service access point address than  
  82. there will be application layer protocols.
  83.  
  84. > The name relative to the host is also typed.  Presently, the only  
  85. type
  86. > supported is ASCII, but the type field is there just in case.
  87.  
  88. The rule we have used is to put type information, if part of the  
  89. link, into the path.  protocols differ upon whether they regard it as  
  90. part of the link or it is returned when you try to retrieve the data.
  91. In the latter case (which I prefer) it should not be in the UDI at  
  92. all.
  93.  
  94. > Three other fields are a version number, a unique ID, and a type.  
  95.  
  96.  
  97. The version number should I suggest be part of the path. Its  
  98. significance will tend to vary between servers. The trouble is, as  
  99. you say, noone has really put up a system dealing with multiple  
  100. versions. We imagined having hidden links from a document to its  
  101. previous, next and latest versions, and to a table of versions.
  102.  
  103. >The purpose of the unique ID is ... to provide a mechanism for  
  104. detecting when an object has been
  105. > deleted and replaced with an object of the same name.  In some  
  106. cases,
  107. > it might be important to note that the object being retrieved is  
  108. not
  109. > the same as the one to which the original link was made.
  110.  
  111. This is non-obvious.  My feeling is that a unique id is a useful  
  112. thing, which I would regard as "header" information, ie information  
  113. you can ask the server for.  Putting it into the link I'm not so sure  
  114. about.  Suppose, for example, the retrieval goes through several  
  115. stages of pointers, being referenced by serveral servers. Do you want  
  116. to check that the final document, or the first link, was really the  
  117. same as the one you made the original link to?
  118.  
  119. > Binding to an access method is accomplished by sending
  120. > a message to the Prospero server at the address in the link, and
  121. > requesting the access method for the named object.  The response
  122. > includes a sequence of tokens, the first identifies the access  
  123. method,
  124. > and the remainder identify the information specific to the access
  125. > method (beyond that which already is part of the link).  If you
  126. > understand the access method, then you also know how to interpret  
  127. the
  128. > remaining tokens.
  129.  
  130. That "late binding" is just the sort of "name-server" function which  
  131. I was talking about, and which for example x500 might also fit into.
  132. So long as both the input and the output to the process are UDIs,  
  133. it's very flexible.
  134.  
  135. > For example, a response indicating access by anonymous FTP might be
  136.  
  137. >  ANONYMOUS-FTP /pub/pfs/guest/README BINARY
  138.  
  139. We'd write that now as file:/(samehost)/pub/pfs/guest/README.  
  140. Currently, if the access protocol has to be specified, then the host  
  141. does too. It could default ot the host of the context of the UDI even  
  142. when protcol fields are different.
  143.  
  144. The "binary" flag is an interesting one and a perennial question.  My  
  145. assumption was that if you know how to handle a file when you've got  
  146. it, then you must know how to transfer it.  In practice with FTP both  
  147. mean that you have to have a table of file suffixes.
  148.  
  149. > Similar responses are supported for other methods, and a response
  150. > might include more than one access method, in which case the
  151. > application choose the method that best suits its needs.
  152.  
  153. Sounds fine.
  154.  
  155. > Now, back to the type field.  One of the shortcomings of the  
  156. approach
  157. > as described so far is that it requires a Prospero server to run on
  158. > the system storing the object to be referenced.  This shortcoming  
  159. is
  160. > addressed by the external link.  The type field in a Prospero link
  161. > provides information on what can be done with the link.  The three
  162. > common types are FILE, DIRECTORY, and EXTERNAL.  The links  
  163. described
  164. > above were of type FILE.  If a links type is directory, its  
  165. contents
  166. > can be listed by contacting the Prospero server (i.e. the links in  
  167. the
  168. > directory can be returned).  If a links type is EXTERNAL, it means
  169. > that the object should be accessed without contacting a Prospero
  170. > server to obtain the access method (usually because a Prospero  
  171. server
  172. > is not running on the target site).  Instead, the access  
  173. information
  174. > that would otherwise have been returned is encoded as part of the
  175. > type.  Thus for example the type of an external link to the file
  176. mentioned above would be.
  177.  
  178.   EXTERNAL(AFTP,BINARY)
  179.  
  180. Your "EXTERNAL" type is a pointer to a document in another naming  
  181. scheme which neat, and expandable -- I like it.  The UDI syntax was  
  182. basically invented to allow one to to that, so that all these systems  
  183. can work together. Basically, type EXTERNAL(xxx) maps onto putting an  
  184. xxx: prefix on the UDI. In your example, it maps to giving a file:  
  185. reference.
  186.  
  187. You have, for prospero, the flag in the link as to whether the object  
  188. is a directory or a file.  So does the Gopher.  This is useful for  
  189. displaying different icons, etc. for the user.  A snag is that if we  
  190. include anonymous FTP file systems, the NLIST command doesn't tell  
  191. you that information, so it doesn't map.  You have to try to retrieve  
  192. it and if that fails, cd to it.  If the flag is considered useful,  
  193. then we could use the converntion (of ls-F) that a/c/b/ is a  
  194. directory and a/b/c is a file. The trouble is, that you can't get  
  195. that information from an FTP server without assuming unix to parse a  
  196. long listing.
  197.  
  198. Do I _have_ to know in advance whether a Prospero item is a directory  
  199. or a file?
  200.  
  201. > Note that for external links using the AFTP or FTP method, the name
  202. > field of the link contains the path name to be passed to FTP.  For
  203. > other access methods, the meaning of the field is defined by the
  204. > particular access method to be used.
  205.  
  206. Yup - the UDI assumptions exactly.
  207.  
  208. > Anyway, I hope this adequate explains the form of Prospero
  209. > identifiers, and I hope that you can fit it in to your proposed
  210. > format. 
  211.  
  212. >
  213. >    ~ Cliff
  214.  
  215. Thanks for a very clear explanation.  It soudds as though Prospero  
  216. will fit very well into the format.  I'll put it into the next draft  
  217. of the document.
  218.  
  219.     - Tim
  220.  
  221.  
  222. 
  223.